home *** CD-ROM | disk | FTP | other *** search
- .text
- .sdreg r2
- ###############################################################################
- # name offset
- # sign 0+0(r13)
- # pre 4+0(r13)
- # m 8+0(r13)
- # n 12+0(r13)
- # o 16+0(r13)
- # f 24+0(r13)
- # d 32+0(r13)
- # args ###########################
- # str 40+0(r13)
- # pos 44+0(r13)
- .align 2
- _RealVal:
- stwu r1,-76(r1)
- stw r13,24(r1)
- mr r13,r1
- stw r3,40+28(r13)
- stw r4,44+28(r13)
- lfd f1,n0(r2)
- stfd f1,32+28(r13)
- lfd f1,n1(r2)
- stfd f1,16+28(r13)
- li r3,-1
- sth r3,4+28(r13)
- while0:
- lwz r5,40+28(r13)
- lwz r6,44+28(r13)
- lbzx r4,r5,r6
- cmpwi r4,32
- beq $+12
- li r4,0
- b $+8
- li r4,-1
- mr r3,r4
- lwz r5,40+28(r13)
- lwz r6,44+28(r13)
- lbzx r4,r5,r6
- cmpwi r4,10
- beq $+12
- li r4,0
- b $+8
- li r4,-1
- or r3,r3,r4
- lwz r5,40+28(r13)
- lwz r6,44+28(r13)
- lbzx r4,r5,r6
- cmpwi r4,9
- beq $+12
- li r4,0
- b $+8
- li r4,-1
- or r3,r3,r4
- mr. r3,r3
- beq end0
- lwz r3,44+28(r13)
- addi r3,r3,1
- stw r3,44+28(r13)
- b while0
- end0:
- if1:
- lwz r4,40+28(r13)
- lwz r5,44+28(r13)
- lbzx r3,r4,r5
- cmpwi r3,45
- beq $+12
- li r3,0
- b $+8
- li r3,-1
- mr. r3,r3
- beq elseif1_1
- li r3,-1
- stw r3,0+28(r13)
- lwz r3,44+28(r13)
- addi r3,r3,1
- stw r3,44+28(r13)
- b end1
- elseif1_1:
-
- li r3,1
- stw r3,0+28(r13)
- end1:
- while5:
- lwz r4,40+28(r13)
- lwz r5,44+28(r13)
- lbzx r3,r4,r5
- stw r3,8+28(r13)
- lwz r0,8+28(r13)
- mr. r0,r0
- beq end5
- if6:
- lwz r4,8+28(r13)
- cmpwi r4,48
- bge $+12
- li r4,0
- b $+8
- li r4,-1
- mr r3,r4
- lwz r4,8+28(r13)
- cmpwi r4,57
- ble $+12
- li r4,0
- b $+8
- li r4,-1
- and r3,r3,r4
- mr. r3,r3
- beq elseif6_1
- lwz r3,8+28(r13)
- subi r3,r3,48
- stw r3,12+28(r13)
- if8:
- lhz r0,4+28(r13)
- mr. r0,r0
- beq elseif8_1
- lfd f1,32+28(r13)
- lfd f2,n2(r2)
- fmul f1,f1,f2
- stfd f1,32+28(r13)
- lfd f1,32+28(r13)
- lwz r3,12+28(r13)
- lis r0,17200
- stw r0,-8(r1)
- xoris r0,r3,0x8000
- stw r0,-4(r1)
- lfd f0,-8(r1)
- lfd f2,conv(r2)
- fsub f2,f0,f2
- fadd f1,f1,f2
- stfd f1,32+28(r13)
- b end8
- elseif8_1:
-
- lwz r3,12+28(r13)
- lis r0,17200
- stw r0,-8(r1)
- xoris r0,r3,0x8000
- stw r0,-4(r1)
- lfd f0,-8(r1)
- lfd f1,conv(r2)
- fsub f1,f0,f1
- stfd f1,24+28(r13)
- lfd f1,24+28(r13)
- lfd f2,16+28(r13)
- fmul f1,f1,f2
- stfd f1,24+28(r13)
- lfd f1,32+28(r13)
- lfd f2,24+28(r13)
- fadd f1,f1,f2
- stfd f1,32+28(r13)
- lfd f1,16+28(r13)
- lfd f2,n3(r2)
- fmul f1,f1,f2
- stfd f1,16+28(r13)
- end8:
- b end6
- elseif6_1:
-
- lwz r3,8+28(r13)
- cmpwi r3,46
- beq $+12
- li r3,0
- b $+8
- li r3,-1
- mr. r3,r3
- beq elseif6_2
- li r3,0
- sth r3,4+28(r13)
- b end6
- elseif6_2:
-
- lfd f1,32+28(r13)
- lwz r3,0+28(r13)
- lis r0,17200
- stw r0,-8(r1)
- xoris r0,r3,0x8000
- stw r0,-4(r1)
- lfd f0,-8(r1)
- lfd f2,conv(r2)
- fsub f2,f0,f2
- fmul f1,f1,f2
- fmr f1,f1
- lwz r3,44+28(r13)
- b RealValfinish
- end6:
- lwz r3,44+28(r13)
- addi r3,r3,1
- stw r3,44+28(r13)
- b while5
- end5:
- RealValend:
-
- lfd f1,32+28(r13)
- lwz r3,0+28(r13)
- lis r0,17200
- stw r0,-8(r1)
- xoris r0,r3,0x8000
- stw r0,-4(r1)
- lfd f0,-8(r1)
- lfd f2,conv(r2)
- fsub f2,f0,f2
- fmul f1,f1,f2
- fmr f1,f1
- lwz r3,44+28(r13)
- RealValfinish:
-
- lwz r13,24(r1)
- addi r1,r1,76
- blr
-
- .global _RealVal
- .type _RealVal,2
- .size _RealVal,$-_RealVal
- .tocd
- .extern _PowerPCBase
- .extern _stdin
- .extern _stdout
- .extern _arg
- .extern _GfxBase
- .extern _IntuitionBase
- .extern _DOSBase
- .extern _ExecBase
- .data
- n0: .long 0x0 ,0x0
- n1: .long 0x3FB99999,0x99999999
- n2: .long 0x40240000,0x0
- .set n3,n1
- conv: .long 0x43300000,0x80000000
-